Micron Document
<!DOCTYPE html>
<html class="client-nojs skin-theme-clientpref-os citizen-feature-autohide-navigation-clientpref-1 citizen-feature-image-dimming-clientpref-0 citizen-feature-pure-black-clientpref-0 citizen-feature-custom-font-size-clientpref-standard citizen-feature-custom-width-clientpref-standard citizen-feature-performance-mode-clientpref-1 citizen-header-position-left citizen-header-position-mobile-bottom" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>RNS</title>
<script id="mwoffliner-jsConfigVars">
document.documentElement.classList.replace('client-nojs', 'client-js')
RLCONF = {"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"RNS","wgTitle":"RNS","wgCurRevisionId":3390,"wgRevisionId":0,"wgArticleId":29,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Official","Implementations"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"RNS","wgRelevantArticleId":29,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"all","wgConfirmEditCaptchaNeededForGenericEdit":false,"wgMFDisplayWikibaseDescriptions":{"search":false,"nearby":false,"watchlist":false,"tagline":false},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"zimRelativeFilePath":"./"}
RLSTATE = {"user.options":"loading","site.styles":"ready","noscript":"ready","skins.citizen.styles":"ready","skins.citizen.codex.styles":"ready","skins.citizen.icons":"ready","ext.PortableInfobox.styles":"ready","ext.cite.styles":"ready","jquery.makeCollapsible.styles":"ready"}
RLPAGEMODULES = ["jquery","mediawiki.base","mediawiki.page.ready","ext.cite.ux-enhancements","jquery.makeCollapsible"]
;(RLQ = window.RLQ || []).push(function () {
mw.config.set(RLCONF)
mw.loader.state(RLSTATE)
mw.loader.load(RLPAGEMODULES)
;(mw.loader.impl || mw.loader.implement)(function () {
return [
'user.options@12s5i',
function ($, jQuery, require, module) {
mw.user.tokens.set({ patrolToken: '+\\', watchToken: '+\\', csrfToken: '+\\' })
},
]
})
})
</script>

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://reticulum.miraheze.org/wiki/RNS"> <link href="./_mw_/ext.PortableInfobox.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/jquery.makeCollapsible.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.citizen.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.citizen.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.citizen.styles.css" rel="stylesheet" type="text/css"> <script async="" src="./_mw_/startup.js"></script>
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<noscript><link href="./_mw_/noscript.css" rel="stylesheet" type="text/css"/></noscript>
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<script src="./_res_/script.js"></script>
</head>

<body class="mwoffliner-fallback mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-RNS rootpage-RNS skin-citizen action-view skin--responsive">
<div id="content" class="mw-body" role="main">
<a id="top"></a>
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">RNS</span></h1>
<div id="bodyContent">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><figure class="mw-default-size" typeof="mw:File/Thumb"><img src="./_assets_/645c0875d8d4af6b8c85c39512036405/Reticulum_model.png" decoding="async" loading="lazy" width="300" height="268" class="mw-file-element" data-file-width="720" data-file-height="642"><figcaption></figcaption></figure>
<p class="mw-empty-elt"></p><aside class="portable-infobox noexcerpt searchaux pi-background pi-theme-default pi-layout-default pi-type-hardware"><h2 class="pi-item pi-item-spacing pi-title" data-source="name">Reticulum Network Stack</h2><div class="pi-item pi-data pi-item-spacing pi-border-color" data-source="type">
<h3 class="pi-data-label pi-secondary-font">Type</h3>
<div class="pi-data-value pi-font"><a href="Category%3AImplementations" title="Category:Implementations">Implementation</a></div>
</div><div class="pi-item pi-data pi-item-spacing pi-border-color" data-source="developer">
<h3 class="pi-data-label pi-secondary-font">Developer</h3>
<div class="pi-data-value pi-font">Mark Qvist</div>
</div><div class="pi-item pi-data pi-item-spacing pi-border-color" data-source="license">
<h3 class="pi-data-label pi-secondary-font">License</h3>
<div class="pi-data-value pi-font"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://github.com/markqvist/reticulum/blob/HEAD/LICENSE">Reticulum License</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=LICENSE Reticulum License]</span></span></div>
</div><div class="pi-item pi-data pi-item-spacing pi-border-color" data-source="language">
<h3 class="pi-data-label pi-secondary-font">Written in</h3>
<div class="pi-data-value pi-font"><a href="https://en.wikipedia.org/wiki/Python_(programming_language)" class="extiw external" title="wikipedia:Python (programming language)">Python</a></div>
</div><div class="pi-item pi-data pi-item-spacing pi-border-color" data-source="platform">
<h3 class="pi-data-label pi-secondary-font">Platform</h3>
<div class="pi-data-value pi-font">Linux, macOS, Windows, OpenBSD, Android, iOS</div>
</div><div class="pi-item pi-data pi-item-spacing pi-border-color" data-source="since">
<h3 class="pi-data-label pi-secondary-font">Since</h3>
<div class="pi-data-value pi-font"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://github.com/markqvist/reticulum/commit/9a9630cfd29e11ace3f12716ddb4dff0e5419b4b">2016-05-29</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/commit.mu`g=reticulum|r=reticulum|ref=HEAD|h=9a9630cfd29e11ace3f12716ddb4dff0e5419b4b 2016-05-29]</span></span></div>
</div><div class="pi-item pi-data pi-item-spacing pi-border-color" data-source="repository">
<h3 class="pi-data-label pi-secondary-font">Repository</h3>
<div class="pi-data-value pi-font"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://github.com/markqvist/reticulum">GitHub</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/repo.mu`g=reticulum|r=reticulum Aleph Git]</span></span></div>
</div><div class="pi-item pi-data pi-item-spacing pi-border-color" data-source="docs">
<h3 class="pi-data-label pi-secondary-font">Documentation</h3>
<div class="pi-data-value pi-font"><span class="manual-link" title="Manual:Reticulum Network Stack Manual"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://reticulum.network/manual/index.html#reticulum-network-stack-manual">Reticulum Network Stack Manual</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/index.md|anchor=reticulum-network-stack-manual Reticulum Network Stack Manual]</span></span></span></div>
</div></aside>

<p class="mw-empty-elt"></p><p><b>RNS</b> (Reticulum Network Stack) is the reference implementation of <a href="Reticulum_Protocol" title="Reticulum Protocol">Reticulum</a> written in <a href="https://en.wikipedia.org/wiki/Python_(programming_language)" class="extiw external" title="wikipedia:Python (programming language)">Python</a> and maintained by Mark Qvist. It is licensed under the <span class="manual-link" title="Manual:Reticulum License"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://reticulum.network/manual/license.html#reticulum-license">Reticulum License</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/license.md|anchor=reticulum-license Reticulum License]</span></span></span>. The Reticulum Protocol is defined by this reference implementation and <span class="manual-link" title="Manual:Reticulum Network Stack Manual"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://reticulum.network/manual/index.html#reticulum-network-stack-manual">the manual</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/index.md|anchor=reticulum-network-stack-manual the manual]</span></span></span>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>RNS runs on pretty much any system that can run Python 3.
</p>

<div class="mw-heading mw-heading2"><h2 id="Installing">Installing</h2></div>
<p>See <span class="manual-link" title="Manual:Getting Started Fast"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://reticulum.network/manual/gettingstartedfast.html#getting-started-fast">Getting Started Fast</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/gettingstartedfast.md|anchor=getting-started-fast Getting Started Fast]</span></span></span> in the manual. Essentially, <code class="selectable" tabindex="0">pip install rns</code>.
</p><p>Use <code>rnsd</code> to run RNS as a <a href="https://en.wikipedia.org/wiki/Daemon_(computing)" class="extiw external" title="wikipedia:Daemon (computing)">background</a> or foreground service.
</p>
<div class="mw-heading mw-heading2"><h2 id="Configuration">Configuration</h2></div>
<p>Each <a href="Instance" title="Instance">instance</a> of RNS has its own configuration directory, the default being <code class="selectable" tabindex="0">~/.reticulum</code>. You can specify a different configuration directory with <code class="selectable" tabindex="0">rnsd --config=<i>&lt;config directory&gt;</i></code>.
</p><p>On first run, a configuration file will be created in this directory (eg. <code class="selectable" tabindex="0">~/.reticulum/config</code>) with a basic but functional configuration. To see all options, run <code class="selectable" tabindex="0">rnsd --exampleconfig</code>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Shared_instance">Shared instance</h2></div>
<p>By default, the first program to launch RNS will create a shared instance that other programs can use.
</p><p>When a shared instance crashes, any programs connected to it will lose their connection. If you are running several programs that use RNS, starting and terminating at different times, consider running a master <code>rnsd</code> instance as a service for other programs to use on demand.<sup id="cite_ref-:0_2-0" class="reference"><a href="#cite_note-:0-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Instead of <code>rnsd</code>, you can run <code>lxmd</code> (<a href="LXMF" title="LXMF">LXMF</a>) or <code>nomadnet</code> (<a href="NomadNet" title="NomadNet">NomadNet</a>) to combine their functionality:
</p>
<ul><li><code>rnsd</code> handles networking and contains the <a href="Transport_node" title="Transport node">transport node</a> functionality.</li>
<li><code>lxmd</code> handles messaging and contains the <a href="Propagation_node" title="Propagation node">propagation node</a> functionality. It starts <code>rnsd</code> automatically on launch.</li>
<li><code>nomadnet</code> handles NomadNet's features including its page hosting functionality. It starts <code>lxmd</code> automatically on launch.</li></ul>
<p>Each have their own configuration file where the functionality can be enabled/disabled.
</p><p>If you <i>only</i> want to use a client like NomadNet or MeshChatX, you can just run that directly and it will automatically launch <code>rnsd</code> (if it is not already running).
</p>
<div class="mw-heading mw-heading2"><h2 id="Multiple_instances">Multiple instances</h2></div>
<p>It is also possible to run multiple instaces of RNS on the same system by specifying a different configuration directory for each instance of <code>rnsd</code> with <code class="selectable" tabindex="0">--config=<i>&lt;config directory&gt;</i></code>, or <code class="selectable" tabindex="0">--rnsconfig=<i>&lt;config directory&gt;</i></code> for any of the utilities. Running multiple instances uses more memory.
</p>
<div class="mw-heading mw-heading2"><h2 id="Utilities">Utilities</h2></div>
<p>RNS includes a number of useful command-line utilities besides the <code>rnsd</code> daemon:
</p>
<ul><li><code><a href="Rncp" title="Rncp">rncp</a></code> – File transfer utility</li>
<li><code><a href="Rngit" title="Rngit">rngit</a></code> – Git repository node management</li>
<li><code><a href="Rnid" title="Rnid">rnid</a></code> – <a href="Identity" title="Identity">Identity</a> and encryption utility</li>
<li><code>rnir</code> – Distributed identity resolver (WIP)</li>
<li><code><a href="Rnodeconf" title="Rnodeconf">rnodeconf</a></code> – <a href="RNode" title="RNode">RNode</a> configuration and firmware utility</li>
<li><code><a href="Rnpath" title="Rnpath">rnpath</a></code> – <a href="Path" title="Path">Path</a> management utility</li>
<li><code>rnpkg</code> – Package manager (WIP)</li>
<li><code><a href="Rnprobe" title="Rnprobe">rnprobe</a></code> – Probe utility</li>
<li><code><a href="Rnsh" title="Rnsh">rnsh</a></code> – Remote shell utility</li>
<li><code><a href="Rnstatus" title="Rnstatus">rnstatus</a></code> – Reticulum Network Stack status</li>
<li><code><a href="Rnx" title="Rnx">rnx</a></code> – Remote execution utility</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Tips_and_tricks">Tips and tricks</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Keeping_up_to_date">Keeping up to date</h3></div>
<p>Subscribe to PyPi's RSS feed to be notified of new releases:
</p><p><code>https://pypi.org/rss/project/rns/releases.xml</code>
</p><p>Use <code><a href="Rngit" title="Rngit">rngit</a></code> to fetch the version number of the latest release:
</p><p><code>rngit release rns://7649a50d84610232d1416b41d2896aff/reticulum/reticulum list | tail -1 | awk '{print $NF}'</code>
</p>
<div class="mw-heading mw-heading3"><h3 id="Update_RNS_over_Reticulum">Update RNS over Reticulum</h3></div>
<p>Once RNS is installed, you can use <code><a href="Rngit" title="Rngit">rngit</a></code> to <a href="Rngit#Install/update_Python_packages" title="Rngit">update RNS over Reticulum</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Security_hardening">Security hardening</h3></div>
<p>Reticulum apps may be isolated by running a primary <code>rnsd</code> <a href="Instance" title="Instance">instance</a> as a non-privileged user, and running each isolated app as its own user with its own <code>rnsd</code> instance/configuration, connected to the primary instance over a <code>BackboneInterface</code>.
</p><p>The primary instance has a system-local <code>BackboneInterface</code> serving the apps' instances, and external interfaces for connecting to the wider network. Each isolated app points to the RNS configuration of its own instance (eg. <code class="selectable" tabindex="0">rngit --rnsconfig=<i>&lt;app's rns config&gt;</i></code>), which in turn connects to the primary instance over a <code>BackboneInterface</code>.
</p><p>Running <a class="mw-selflink-fragment" href="#Multiple_instances">multiple instances</a> like this uses more memory and adds an extra hop, but the performance penalty is negligible.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Implementations" title="Implementations">Implementations</a></li>
<li><a href="Reticulum_Protocol" title="Reticulum Protocol">Reticulum Protocol</a></li>
<li><a href="Transport_node" title="Transport node">Transport node</a></li>
<li><a href="NomadNet" title="NomadNet">NomadNet</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><i>Reference Implementation</i>, Manual. <span class="exclude-nomadnet"><a rel="nofollow" class="external text" href="https://reticulum.network/manual/whatis.html#reference-implementation">Web</a> / NomadNet: </span><code class="nomadnet address">a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/whatis.md|anchor=reference-implementation</code></span>
</li>
<li id="cite_note-:0-2"><span class="mw-cite-backlink"><a href="#cite_ref-:0_2-0">↑</a></span> <span class="reference-text"><i>API Reference&nbsp;› Reticulum</i>, Manual. <span class="exclude-nomadnet"><a rel="nofollow" class="external text" href="https://reticulum.network/manual/reference.html#RNS.Reticulum">Web</a> / NomadNet: </span><code class="nomadnet address">a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/reference.md|anchor=RNS.Reticulum</code></span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><span class="manual-link" title="Manual:API Reference"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://reticulum.network/manual/reference.html#api-reference">API Reference</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/reference.md|anchor=api-reference API Reference]</span></span></span></li>
<li><span class="manual-link" title="Manual:Code Examples"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://reticulum.network/manual/examples.html#code-examples">Code Examples</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/examples.md|anchor=code-examples Code Examples]</span></span></span></li>
<li><a rel="nofollow" class="external text" href="https://pypi.org/project/rns/">PyPI project</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r3053">
/* start https://reticulum.miraheze.org/ */

.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://reticulum.miraheze.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r3049">
/* start https://reticulum.miraheze.org/ */

.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox{border:1px solid #6a747f}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-subgroup{background-color:#050505}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-list{border-color:#050505}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-abovebelow,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-group,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-image,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-list{border-top:2px solid #050505}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-title{background-color:#00006b}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-abovebelow,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-group,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-title{background-color:#00004d}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-group,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#00003b}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-even{background-color:#141414}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox{border:1px solid #6a747f}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-subgroup{background-color:#050505}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-list{border-color:#050505}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-abovebelow,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-group,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-image,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-list{border-top:2px solid #050505}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-title{background-color:#00006b}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-abovebelow,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-group,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-title{background-color:#00004d}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-group,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#00003b}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-even{background-color:#141414}}
/* end https://reticulum.miraheze.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="RNS_utilities" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r3051">
/* start https://reticulum.miraheze.org/ */

.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}
/* end https://reticulum.miraheze.org/ */
</style><div id="RNS_utilities" style="font-size:114%;margin:0 4em"><a class="mw-selflink selflink">RNS</a> utilities</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><code><a href="Rncp" title="Rncp">rncp</a></code></li>
<li><code><a href="Rngit" title="Rngit">rngit</a></code></li>
<li><code><a href="Rnid" title="Rnid">rnid</a></code></li>
<li><code>rnir</code></li>
<li><code><a href="Rnodeconf" title="Rnodeconf">rnodeconf</a></code></li>
<li><code><a href="Rnpath" title="Rnpath">rnpath</a></code></li>
<li><code>rnpkg</code></li>
<li><code><a href="Rnprobe" title="Rnprobe">rnprobe</a></code></li>
<li><code><a href="Rnsh" title="Rnsh">rnsh</a></code></li>
<li><code><a href="Rnstatus" title="Rnstatus">rnstatus</a></code></li>
<li><code><a href="Rnx" title="Rnx">rnx</a></code></li></ul>
</div></td></tr></tbody></table></div></div><div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks">Categories: <ul><li><a href="Category%3AOfficial" title="Category:Official">Official</a></li><li><a href="Category%3AImplementations" title="Category:Implementations">Implementations</a></li></ul></div></div><!--htdig_noindex--><div><div class="zim-footer">
This page is issued from <a class="external text" title="Last edited on 2026-08-24" href="https://reticulum.miraheze.org/wiki/?title=RNS&amp;oldid=3390">Reticulum Community Wiki</a>. The text is available under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</div>

</body></html>